Delivery of real time services over networks is playing an increasingly important role in the popularity of network applications. In designing solutions for real time applications, quality of service considerations become very important. One of the crucial technical attributes that affect the quality of service in delivering real time application solutions is the system latency.
One important example of a real time service is VoIP (Voice-over-IP). In an example of a voice system, voice transmission quality is a primary concern. In such a system, latency is the time delay of the speech incurred by the system. It is measured from the moment the speaker utters a word until the listener actually hears it. System latency of voice transmission on a network may be influenced by many factors. For example, in a VoIP system, it takes time to collect voice samples, process them, and create IP packets. Then, when the packets are actually shipped across a network, they run into routing and other variable delays. To keep variations in delay (jitter) from degrading voice quality, a jitter buffer is used at the receiving end to store the incoming voice packets and then play them out at a constant rate. But again the time the voice data spends in the jitter buffer adds to the system latency.
The amount of latency tolerated is a subjective issue, but it is agreeable that a maximum exists. Common figures grade VoIP services with latency shorter than 150 milliseconds as having excellent quality, while any service with latency longer than 300 milliseconds is graded as “poor quality service”. Since latency is cumulative, any latency introduced by a component in the system will directly affect the total latency experienced by the user. Likewise, reducing latency in any component of the system will improve overall latency and voice quality.
Generally, an IP Telephony system is constructed using 2 VoIP gateways that interconnect using a network. Latency in such a system is introduced by the gateways at both ends and by the network that connects the two gateways. The gateway latency is influenced by the processing occurring inside the gateway. On the transmitting side, each of the main processes inside the gateway: Framing, Vocoding (or Voice Compression) and Packetization, has its own latency that contributes to the overall gateway latency. On the receiving side the compatible processes have their own effect on overall latency.
As input bits of data are received for gateway processing at the transmitting side they are grouped together in frames. Since Vocoding is performed on entire frames (or batches) of data, a full frame of bits must be collected before any processing is done. The side effect of processing data in frames is a framing latency of one frame duration and therefore, the size of the frame will affect the framing latency. Deciding on the frame size is a compromise: the larger the frame, the greater the vocoding efficiency, but with that comes greater framing latency. Each of the VoIP standards common nowadays uses a standard frame size, thus, the latency of the framing process is directly dependent on the selection of the Vocoder, and can not be altered.
After the collection of an entire frame is completed, a DSP algorithm is used to perform the Vocoding/Voice-Compression algorithm. The latency introduced by this process varies and depends on the vocoding standard, and the software and hardware implementation of it. Current DSPs and progress in vocoding algorithm implementations have advanced, making the Vocoding-latency a relatively short one.
Packetization has to do with preparing coded data for transport over the network, thus assembling the data into packets. The Packetization process carries its own latency, depending on the number of frames packed into one packet. Once the data is packetized and ready for transport across the network, the packet must wait until the transmitting device, for example a gateway, has access to the network. This access time may be referred to as access latency.
Once the packet data leaves the gateway, it starts its path in the network. Passing data over the network introduces the Network Latency. This latency depends on the media being used, the actual routing scenarios, firewalls and proxy servers delays. Since there are many different options, network latency figures vary on a wide scale.
Once the packets are received at the receiver's gateway the reverse processing occurs which introduces additional latency to the overall delay.
Access Latency, as described above, is another source of latency and is introduced when the transmitter must wait to gain access to the transmission medium to transmit waiting data. In some network configurations, one or more parts of the network use a shared media. A shared media refers to a situation where a number of transmitters use the same physical link for transmission. This is common, for example, to the uplink scenario in Point to Multipoint Access systems such as a Wireless Access system where a group of users communicate over the same wireless link with the base station, or a Cable TV network configuration where users communicate via the same cable media with the head-end. There are many other examples of shared media scenarios too numerous to mention them all here.
As an example when a transmitter transmits data, the shared transmission media is allocated to each transmitter for the duration needed for transmission. When the shared media is not allocated for a user to transmit, the data must be stored at the transmitter until the media is available. This storage of data at the transmitter until the media is available introduces additional latency which adds to and is a part of the overall network-latency. In particular this additional latency may be referred to as Access-Latency. Access-Latency is caused by the time the data are stored at the transmitter before the shared transmission media is assigned for that specific transmitter for transmission of its stored data.
FIG. 1 shows an example of an environment where a group of transmitters use the same media to transmit data, each transmitter may be part of a Network Terminal Modem (terminal). FIG. 1 illustrates two Network Terminal Modems terminal 1 (10) and terminal 2 (20). Terminal 1 (10) and terminal 2 (20) terminate to the network over the same shared transmission media (30). Each of the different terminals independently executes processing and preparation of data for transmission onto the shared transmission media (30). The processed data is stored at the terminal until the media (30) is available for the specific terminal. Each instance the media (30) is available for a specific terminal it sends the processed data into the shared media (30) in, for example, a First-In-First-Out mode. It is inevitable that delay is introduced in this process, caused by the time for storing the processed data and the time that passes until the specific terminal is assigned with “permission” to transmit. This Access-Latency adds to the overall system latency and causes a degradation in the quality of service.
In applying an example of a VoIP system to FIG. 1, each terminal would transmit VoIP packets when the shared transmission media is allocated to each terminal. When the shared media is not allocated to a terminal, the terminal must store the VoIP packets until the media is available. Using FIG. 1 to illustrate this example, a group of terminals use the same media to transmit VoIP packets. The terminal also includes a VoIP gateway for providing VoIP services.
Each of the terminals, terminal 1 (10) and terminal 2 (20) of FIG. 1, independently executes the VoIP gateway processes. In other words, each terminal frames, vocodes and packetizes the voice-data independently of the other terminal, preparing a “bank” of VoIP packets, ready for transmission over the shared media (30). The bank of VoIP packets is stored at the terminal transmitter until the media (30) is available for the specific terminal. Each instance the media (30) is available for a specific terminal, that terminal sends the packets onto the shared media (30). Thus Access-Latency is introduced in the process of storing the banks of VoIP packets plus the time that passes until the specific terminal is assigned with “permission” to transmit the stored banks of VoIP packets, plus retrieving and sending the stored banks of VoIP packets.
FIG. 2 shows a timing diagram for the example of FIG. 1. In FIG. 2 terminal 1 (10) and terminal 2 (20) process the data independently from the point in time when each terminal is allocated access to the shared media. As shown in the example of FIG. 2, terminal 2 (20) begins its packet processing at t1which is before terminal 1 (10) begins its packet processing at t2. In other words each terminal begins it processing without regard to the time when it will be granted access to the shared media to transmit the processed packet.
Each terminal has a processing delay associated with preparing the data for transmission on the shared media. Terminal 2 (20) completes its packet processing at t3 and terminal 1 (10) completes its packet processing at t4. Each terminal stores its packets waiting for access to be granted to transmit to the shared media.
As illustrated in FIG. 2, terminal 1 (10) gains access to the shared media at t5 and terminal 2 (20) gains access at t6. The packets from terminal 1 (10) are transmitted to the network during Access 1 (lasting from t5 to t6) and once the packets are in the network additional network latency is incurred. The packets of terminal 1 (10) arrive at their destination at t8. Similarly, the packets from terminal 2 (20) are transmitted to the  network during Access 2 (lasting from t6 to t7) and thereafter incurring network latency and arriving at their destination at t9.
As previously described both terminal 1 (10) and terminal 2 (20) must store the packets from the time packet processing is completed until access to the shared media (30) is granted to transmit the packets. In addition terminal 2 (20) completed its packet processing prior to terminal 1 (10), however terminal 1 (10) has access to the media (30) prior to terminal 2 (20), this adds additional inefficiencies and delay to the packets of terminal 2 (20).
Because there is no synchronization between the processing in the gateway of the terminals and when the shared media is allocated to each terminal, each terminal completes processing at a time independent of when the packets are to be transmitted and the packets must be stored until access to the shared media is granted. The times for waiting, storing and retrieving of the packets add to the latency of the system and the quality of service decreases.
As described, the prior shared media systems suffer from Access-Latency introduced when there is no synchronization between the timing of the processes and processing of the different terminals and the time when access to the shared media is granted. Each terminal processes data independently of the other terminals and independent of the terminal's access time thus adding to overall system latency.
Accordingly the present invention reduces the network-latency by reducing this Access-Latency. This may be achieved by a synchronization process that synchronizes the data processing of each of the different terminals/transmitters to the time the shared media will be granted for transmission. This synchronization process allows the processing of the data to be completed relatively close to the time when the shared media is granted, thus reducing network-latency and buffering of the packets waiting for network access.